Thema Datum  Von Nutzer Rating
Antwort
09.07.2007 17:53:00 paulchen
NotSolved
09.07.2007 20:01:04 Sozu
NotSolved
09.07.2007 21:16:04 paulchen
NotSolved
Blau Aw:Aw:Aw:Löschen von Worksheet -> globale Variable
10.07.2007 20:42:03 Sozu
NotSolved
12.07.2007 21:37:51 paulchen
NotSolved
12.07.2007 22:04:55 Sozu
NotSolved

Ansicht des Beitrags:
Von:
Sozu
Datum:
10.07.2007 20:42:03
Views:
726
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Löschen von Worksheet -> globale Variable
Hallöle Paulchen,

sorry dass ich mich erst jetzt melde, aber ich hab momentan viel zu tun...

Nun zu deiner Prozedur: So wie du sie hier abgedruckt hast MUSS sie jedesmal 100 ausgeben, da du bei JEDEM Aufruf den Wert von var auf 100 setzt! Diese Sub hat aber mit der eigentlich beschriebenen Sub nicht viel gemeinsam. Dein Array xx() fehlt, "Sub initArray" ebenfalls...
Hab den Code mal kopiert und ihn laufen lassen: Bei mir kommt jedes Mal die Anzeige "100".

Ich weiß auch nicht, warum du jedesmal eine Schleife durchlaufen lässt, es sei denn, es soll IMMER das gleiche Blatt gelöscht werden. Dann könntest du aber auch einfach "Sheets("T1").delete" bzw. Sheets("Sheet1").delete" schreiben. Den Fehler beim 2. Durchlauf kannst du mit "On Error Resume Next" abfangen.
Oder ist DAS HIER nicht der vollständige Code, dann kann ich den Fehler aber leider auch nicht nachvollziehen.

Noch ein Tipp für deine Erklärungen. Du redest manchmal davon "...bei jedem der 3 die Funktion printArray..." Es handelt sich aber immer um eine Prozedur (Sub) und nicht um eine Funktion (Function)! Das ist nämlich ein riesen Unterschied!

Poste mal den vollständigen Code, sonst kann ich dir bei deinem Fehler leider nicht helfen. Aber vielleicht weiß ja jemand anderes, wo bei deinem Problem der Fehler liegt...!

MfG Sozu


paulchen schrieb am 09.07.2007 21:16:04:

hey Sozu!

danke erst mal für deine Antwort!

leider bringt es mich nicht weiter. ich hab jetzt noch mal versucht das ganze problem besser zu beschreiben und mich dabei auf die globale Variable var beschränkt:

ich hab ne arbeitsmappe mit 3 worksheets (T1, T2, T3) in denen jeweils ein button ist. beim draufklicken wird bei jedem der 3 die Funktion printArray aufgerufen:

Modul1:
-------

Option Explicit

Public var As Integer

Public Sub printArray()
Dim i As Integer

MsgBox var
var = 100

For i = 1 To Worksheets.Count
If Worksheets(i).Name = "T1" Then
Worksheets(i).Delete
Exit For
End If
Next i

MsgBox var
End Sub

hab die displayAlerts extra dabei gelassen...

und jetzt das ergebnis, das mir völlig unklar ist (es ist bei jedem der 3 buttons dasselbe):
nach dem ersten mal klicken zeigt er in der ersten msgbox 0 an für var, danach wird ja der wert 100 zugewiesen. jetzt kommt dann die frage ob man löschen möchte und man siehts gut wenn man hier erstmal nein wählt. var bleibt klarerweise auf 100. alles klar bis hierher ;)
jetzt nochmalklicken, var ist erstmal 100, man bestätigt das löschen und jetzt kommt das delete. var bleibt vorerst noch auf 100.
aber jetzt: wenn man noch ein mal einen der 2 übrigen buttons anklickt zeigt er für var den wert 0 und nicht mehr 100 obwohl der wert nicht mehr geändert wurde (!!!) und das is ja völlig abwegig.

Speichert er die werte irgendwo im sheet drinnen?! das wär ja furchtbar für mich ... :(

was mich auch wundert: wenn man in die zeile mit der 2. msgbox einen haltepunkt einfügt meldet er falls man das sheet tatsächlich löscht dass er nicht in den haltemodus wechseln kann. weiß auch nicht was das bedeuten soll ...

naja vielleicht weiß ja ein schlauer kopf weiter ;)
danke & lg, paulchen

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
09.07.2007 17:53:00 paulchen
NotSolved
09.07.2007 20:01:04 Sozu
NotSolved
09.07.2007 21:16:04 paulchen
NotSolved
Blau Aw:Aw:Aw:Löschen von Worksheet -> globale Variable
10.07.2007 20:42:03 Sozu
NotSolved
12.07.2007 21:37:51 paulchen
NotSolved
12.07.2007 22:04:55 Sozu
NotSolved